﻿#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>

//int main() {
// 
//	printf("hello world!\n" );
//	printf("%zd\n", sizeof(int));
//	printf("%zd\n", sizeof(long));
//	printf("%zd\n", sizeof(char));
//	printf("%zd\n", sizeof(double));
//
//	return 0;
//}



//#include <stdio.h>
//int main()
//{
//    int num1 = 0;
//    int num2 = 0;
//    int sum = 0;
//    printf("输入两个操作数:>\n");
//    scanf("%d %d", &num1, &num2);
//    sum = num1 + num2;
//    printf("sum = %d\n", sum);
//    return 0;
//}
//



//#include <stdio.h>
////下面代码，打印结果是什么？为什么？（突出'\0'的重要性）
//int main()
//{
//    char arr1[] = "bit";
//    char arr2[] = { 'b', 'i', 't' };
//    char arr3[] = { 'b', 'i', 't', '\0' };
//    printf("%s\n", arr1);
//    printf("%s\n", arr2);
//    printf("%s\n", arr3);
//    return 0;
//}




//#include <stdio.h>
//int main()
//{
//    int coding = 0;
//    printf("你会去敲代码吗？（选择1 or 0）:>");
//    scanf("%d", &coding);
//    if (coding == 1)
//    {
//        printf("坚持，你会有好offer\n");
//    }
//    else
//    {
//        printf("放弃，回家卖红薯\n");
//    }
//    return 0;
//}







////while循环的实例
//#include <stdio.h>
//int main()
//{
//    printf("加入比特\n");
//    int line = 0;
//    while (line <= 20000)
//    {
//        line++;
//        printf("我要继续努力敲代码%d\n",line);
//    }
//    if (line > 20000)
//        printf("好offer\n");
//    return 0;
//}
//


//#include<stdio.h>
//
//int main()
//{
//    int num1 = 0;
//    int num2 = 0;
//    printf("请输入任意两个数字-->\0\n");
//    scanf("%d %d", &num1,&num2);
//    int num = num1 + num2;
//    printf("%d\n", num);
//    return 0;
//} 




//#include<stdio.h>
////两者中较大数字
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//
//	printf("请输入两个数字");
//	scanf("%d %d", &a , &b);
//	c = (a > b ? a : b);
//	//三目运算符 
//	printf("%d\n", c);
//
//
//
//	return 0;
//}




//#include<stdio.h>
//
//int main()
//{
//	int num = 3;
//	if (num == 5)
//		printf("hello\n");
//	else
//	{
//		printf("是的\n");
//	}
//	return 0;
//
//}



//输出1-100之间的奇数

//#include<stdio.h>
//
//int main()
//{
//	
//	for (int i = 0; i < 100; i++)
//	{
//		if (i % 2 == 1)
//
//		{
//			printf("%d\n", i);
//		}
//	}
//	return 0;
//}



//阶乘相加

//#include<stdio.h>
//
//int main()
//{
//	int sum = 0;
//	int ret = 1;
//	int i = 1;
//	int n = 0;
//	printf("请输入一个整数-->\n");
//	scanf("%d", &n);
//	for (i = 1; i < n+1; i++)
//	{
//		ret = 1;
//		for (int  j = 1; j < i +1 ; j++)
//		{
//			ret = ret * j;
//		}
//		sum = sum + ret;
//	}
//	printf("%d 的阶乘和为： %d ", n, sum);
//
//	return 0;
//}



//折半查找
// 
//总结：1未定义有序数组   2 没有加break语句，导致跳不出while循环，处于打印死循环

//#include<stdio.h>
//
//int main()
//{
//
//	int arr[10] = { 2,3,5,6,7,9,14,21,25,26 };
//	int k = 26;
//	int size = sizeof(arr) / sizeof(arr[0]);
//	int left = 0;
//	int right = size - 1;
//	while (left<=right)
//	{
//		int mid = (left + right) / 2;
//		if (arr[mid]<k)
//		{
//			left = mid + 1;
//
//		}
//		else if (arr[mid]>k)
//		{
//			right = mid - 1;
//		}
//		else
//		{
//			printf("找到了，下标是%d\n", mid);
//			break;
//		}
//	}
//	if (left>right)
//	{
//		printf("找不到");
//	}
//	return 0;
//}
//





//strlen是计算字符串的长度，而sizeof是计算操作数组的长度

//
//
////字符从两边向中间展开
//
//#include<stdio.h>
//#include<Windows.h>
//#include<stdlib.h>
//
//int main()
//{
//	char arr1[] = "mo yu yi shu jia niu bi !!!";
//	char arr2[] = "***************************";
//	int left = 0;
//	int right = strlen(arr1) - 1;
//	/*int right= sizeof(arr1)/sizeof(arr1[0])-2*/
//	while (left<=right)
//	{
//		arr2[left] = arr1[left];
//		arr2[right] = arr1[right];
//		printf("%s\n", arr2);
//		Sleep(99);
//		system("cls");
//		left++;
//		right--;
//	}
//	printf("%s\n", arr2);
//	return 0;
//
//}


//
//#include<stdio.h>
//
//int main()
//{
//	int arr1[] = { 4,5,6,3,2,1,5,6,9 };
//	char arr2[] = "moyuyishujia";
//
//	int a1 = strlen(arr1);
//	//strlen只能求字符串长度，不包含结尾空字符\0
//
//	int b1 = strlen(arr2);
//	//标准的strlen求字符串长度 预测输出为 12
//
//	int a2 = sizeof(arr1) / sizeof(arr1[0]);
//	//求数组元素个数 预测输出为 9
//
//	int b2 = sizeof(arr2) / sizeof(arr2[0]);
//	//求字符串个数，由于sizeof包含最后空字符\0,故预测结果为 13
//
//	printf("a1=%d b1=%d a2=%d b2=%d", a1, b1, a2, b2);
//	return 0;
//}




//
//编写代码实现，模拟用户登录情景，并且只能登录三次。（只允许输入三次密码，如果密码正确则
//提示登录成，如果三次均输入错误，则退出程序。
//
//
//#include<stdio.h>
//#include<string.h>
//int main() {
//	char password[20] = { 0 };
//	int i = 0;
//	while (i<3)
//	{
//		printf("请输入密码：");
//		scanf("%s", password);
//		//数组本来就是地址，所以不用取地址
//		if (strcmp(password,"abcdef") == 0)
//			//库函数strcmp 返回值为0，则字符串相等
//		{
//			printf("密码正确，登录成功\n");
//			break;
//		}
//		else
//		{
//			printf("密码错误，请重新输入\n");
//
//		}
//		i++;
//
//
//	}
//	if (i==3)
//	{
//		printf("三次密码错误，退出程序\n");
//	}
//
//	return 0;
//
//}


//
//猜数字
// 
//#include <stdio.h>
//#include <stdlib.h>
//#include <time.h>
//void menu()
//{
//	printf("**********************************\n");
//	printf("*********** 1.play     **********\n");
//	printf("*********** 0.exit     **********\n");
//	printf("**********************************\n");
//}
//RAND_MAX--rand函数能返回随机数的最大值。
//void game()
//{
//	int random_num = rand() % 100 + 1;
//	int input = 0;
//	while (1)
//	{
//		printf("请输入猜的数字>:");
//		scanf("%d", &input);
//		if (input > random_num)
//		{
//			printf("猜大了\n");
//		}
//		else if (input < random_num)
//		{
//			printf("猜小了\n");
//		}
//		else
//		{
//			printf("恭喜你，猜对了\n");
//			break;
//		}
//	}
//}
//int main()
//{
//	int input = 0;
//	srand((unsigned)time(NULL));
//	do
//	{
//		menu();
//		printf("请选择>:");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			game();
//			break;
//		case 0:
//			break;
//		default:
//			printf("选择错误,请重新输入!\n");
//			break;
//		}
//	} while (input);
//	return 0;
//}






//关机程序
 
// 
//#include<stdio.h>
//#include<string.h>
//#include <stdlib.h>
//
//int main()
//{
//	char password[20] = { 0 };
//	system("shutdown -s -t 60");
//
//	while (1)
//	//无限循环
//	{
//		printf("电脑将在一分钟内关机，输入“我是猪”取消关机\n");
//		scanf("%s", password);
//		if (strcmp("我是猪", password) == 0)
//		{
//			system("shutdown -a");
//			printf("你确实是猪");
//			break;
//		}
//
//	}
//	return 0;
//
//}
//
//
//
//
//#include<stdio.h>
//void Swap1(int x, int y)
//{
//	int tmp = 0;
//	tmp = x;
//	x = y;
//	y = tmp;
//}
//
////当实参传递给形参的时候，形参只是实参的一份临时拷贝，对形参的修改不会影响实参
// 
//void Swap2(int* px, int* py)
////定义了指向整形变量的指针px,py
//{
//	int tmp = 0;
//	tmp = *px;
//	*px = *py;
//	*py = tmp;
//}
//int main()
//{
//	int num1 = 0;
//	int num2 = 0;
//	scanf("%d %d", &num1, &num2);
//	Swap1(num1, num2);
//	printf("Swap1::num1 = %d num2 = %d\n", num1, num2);
//	Swap2(&num1, &num2);
//	printf("Swap2::num1 = %d num2 = %d\n", num1, num2);
//	return 0;
//}


//判断一个数是不是素数

//#include<stdio.h>
//#include<math.h>
//
//
//int prime(int n)
//{
//	int j = 0;
//	for (int j = 2; j <= sqrt(n); j++)
//	{
//		if (n % j == 0)
//		{
//			return 0;
//
//		}
//	}
//	return 1;
//
//}
//
//int main()
//{
//	int m = 0;
//	printf("请输入一个数字->\n");
//	scanf("%d", &m);
//	if (prime(m))
//	{
//		printf("%d 是素数",m);
//	}
//	else
//	{
//		printf("%d 不是素数",m);
//
//	}
//	return 0;
//}


//判断一个年份是不是闰年

//#include<stdio.h>
//
//
//
//int runnian(int m)
//{
//
//	if (((m % 4 == 0) && (m % 100 != 0)) || (m % 400 == 0))
//		return 1;
//	else
//		return 0;
//}
//
//int main()
//{
//	int i = 0;
//	printf("请输入一个年份->");
//	scanf("%d", &i);
//	if (runnian(i))
//	{
//		printf("是闰年");
//	}
//	else
//	{
//		printf("不是闰年");
//	}
//	return 0;
//}



//写一个函数，每次调用这个函数num加1

//#include<stdio.h>
//void Add(int* p)
//{
//	(*p)++;
//}
//int main()
//{
//	int num = 0;
//	Add(&num);
//	Add(&num);
//	Add(&num);
//	printf("%d", num);
//
//	return 0;
//}



//不创建临时变量，求字符串长度



#include<stdio.h>
//
//int my_strlen(char* str)
//{
//	if (*str!='\0')
//	{
//		return 1 + my_strlen(str + 1);
//	}
//	else
//	{
//		return 0;
//	}
//}
//int main()
//{
//	char arr[100];
//	printf("请输入字符串->\n");
//	scanf("%s",arr);
//	int len = my_strlen(arr);
//	printf("%d", len);
//	return 0;
//}


////求N的阶乘
//
//#include<stdio.h>
//
////迭代实现
//int fac(n)
//{
//	int i = 0;
//	int ret = 1;
//	for ( i = 1; i <= n; i++)
//	{
//		ret = ret * i;
//		
//	}
//	return ret;
//}
//
//递归实现
// 
//int fac(n)
//{
//	if (n>1)
//	{
//		return n * fac(n - 1);
//	}
//	else
//	{
//		return 1;
//	}
//}
//int main()
//{
//	int n = 0;
//	printf("请输入一个数字->\n");
//	scanf("%d", &n);
//	int ret = fac(n);
//	printf("%d", ret);
//	return 0;
//}




//斐波那契数列

#include<stdio.h>
//递归实现
//int fbi(int n)
//{
//	if (n <= 2)
//	{
//		return 1;
//	}
//	else
//		return fbi(n - 1) + fbi(n - 2);
//}

//迭代实现
//int fbi(int n)
//{
//	int a = 1;
//	int b = 1;
//	int c = 1;
//	while (n >= 3)
//	{
//		c = a + b;
//		a = b;
//		b = c;
//		n--;
//
//	}
//	return c;
//
//}
//
//int main()
//{
//	int n = 0;
//	printf("请输入一个数字->");
//	scanf("%d", &n);
//	int ret = fbi(n);
//	printf("%d", ret);
//	return 0;
//
//}



//
//#include<stdio.h>
//
//int main()
//{
//	int i = 0;
//	for ( i = 0; i < 10; i++)
//	{
//		if (i = 5)
//			printf("%d", i);
//	}
//	return 0;
//
//}



//求两数最大公约数

//暴力求解
//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int min = (a < b) ? a : b;
//	while (1)
//	{
//		if (a % min == 0 && b % min == 0)
//		{
//			break;
//
//		}
//		min--;
//
//	}
//	printf("%d", min);
//	return 0;
//}


//辗转相除法

//#include<stdio.h>
//int main()
//{
//	int a = 0;
//	int b = 0;
//    scanf("%d %d", &a, &b);
//	while (a%b)
//	{
//		int c = a % b;
//		a = b;
//		b = c;
//
//	}
//	printf("%d", b);
//	return 0;
//}


//1/3是整数除法，1.0/3是小数除法

#include<stdio.h>
//int main()
//{
//
//	int i = 0;
//	double sum = 0;
//	int flag = 1;
//	for ( i = 0; i < 100; i++)
//	{
//		sum = sum + flag * (1.0 / i);
//		flag = -flag;
//
//	}
//	return 0;
//
//}



//找出10个值中的最大值

//
//#include<stdio.h>
//int main()
//{
//	int arr[10] = { 0 };
//	printf("请输入10个数字->");
//	for (int j = 0; j < 10; j++)
//	{
//		scanf("%d", &arr[j]);
//	}
//	int max = arr[0];
//	for (int i = 1; i <10; i++)
//	{
//		if (arr[i] > max)
//			max = arr[i];
//	}
//
//	printf("%d", max);
//	return 0;
//}


